package com.av.db.dataobjects;

import java.io.Serializable;
import java.util.Date;

import com.av.db.dataobjects.enums.EstatusAclaracion;

/**
 * Aclaracion sobre algun cargo hecho al usuario de la tarjeta vehicular
 * 
 * @author Victor J Morales R
 * 
 */
public class Aclaracion implements Serializable {

	private static final long serialVersionUID = 1L;

	public static final String ID = "id";
	public static final String TARJETA = "tarjeta";
	public static final String ADEUDO = "adeudo";
	public static final String ESTATUSACLARACION = "estatusAclaracion";
	public static final String FECHA = "fecha";
	public static final String MONTOACLARADO = "montoAclarado";
	public static final String DESCRIPCION = "descripcion";

	// Miembros
	private int id;
	private Tarjeta tarjeta;
	private Adeudo adeudo;
	private EstatusAclaracion estatusAclaracion;
	private Date fecha;
	private double montoAclarado;
	private String descripcion;

	// Propiedades

	/**
	 * Obtiene el identificador de la tabla
	 */
	public int getId() {
		return id;
	}// getId

	/**
	 * Asigna el identificador de la tabla
	 * 
	 * @param id
	 */
	@SuppressWarnings("unused")
	private void setId(int id) {
		this.id = id;
	}// setId

	/**
	 * Obtiene la tarjeta que levanto la aclaracion
	 */
	public Tarjeta getTarjeta() {
		return tarjeta;
	}// getTarjeta

	/**
	 * Asigna la tarjeta que levanto la aclaracion
	 * 
	 * @param idTarjeta
	 */
	public void setTarjeta(Tarjeta tarjeta) {
		this.tarjeta = tarjeta;
	}// setTarjeta

	/**
	 * Obtiene el adeudo sobre el que se hace la aclaracion
	 */
	public Adeudo getAdeudo() {
		return adeudo;
	}// getAdeudo

	/**
	 * Asigna el adeudo sobre el que se hace la aclaracion
	 * 
	 * @param idAdeudo
	 */
	public void setAdeudo(Adeudo adeudo) {
		this.adeudo = adeudo;
	}// setAdeudo

	/**
	 * Obtiene el estatus de la aclaracion
	 */
	public EstatusAclaracion getEstatusAclaracion() {
		return estatusAclaracion;
	}// getEstatusAclaracion

	/**
	 * Asigna el estatus de la aclaracion
	 * 
	 * @param estatusAclaracion
	 */
	public void setEstatusAclaracion(EstatusAclaracion estatusAclaracion) {
		this.estatusAclaracion = estatusAclaracion;
	}// setEstatusAclaracion

	/**
	 * Obtiene la fecha en la que se presento la aclaracion
	 * 
	 * @return
	 */
	public Date getFecha() {
		return fecha;
	}// getFecha

	/**
	 * Asigna la fecha en la que se presento la aclaracion
	 * 
	 * @param fecha
	 */
	public void setFecha(Date fecha) {
		this.fecha = fecha;
	}// setFecha

	/**
	 * Obtiene el monto el cual fue aclarado
	 * 
	 * @return
	 */
	public double getMontoAclarado() {
		return montoAclarado;
	}// getMonto

	/**
	 * Asigna el monto a ser aclarado
	 * 
	 * @param monto
	 */
	public void setMontoAclarado(double montoAclarado) {
		this.montoAclarado = montoAclarado;
	}// setMonto

	/**
	 * Obtiene la descripcion del monto aclarado
	 * 
	 * @return
	 */
	public String getDescripcion() {
		return descripcion;
	}// getDescripcion

	/**
	 * Asigna la descripcion del monto aclarado
	 * 
	 * @param descripcion
	 */
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}// setDescripcion

	// Funciones
	public String toString() {
		return this.descripcion;
	}// toString

	public boolean equals(Object o) {
		if (o == null || !(o instanceof Aclaracion)) {
			return false;
		}
		return ((Aclaracion) o).getId() == id;
	}// equals

}// Aclaracion